ديف أوبس

تفعيل شهادة SSL لأباتشي

إنشاء شهادة SSL لخادوم Apache على نظام Ubuntu 14.04

تُعدّ شهادات SSL (Secure Sockets Layer) من أهم المكونات التي تعزز أمان الاتصالات بين خادم الويب والمتصفح، حيث تقوم بتشفير البيانات المتبادلة بين الطرفين، مما يمنع التجسس أو التلاعب بها من قبل أطراف ثالثة. في هذا المقال، سنتناول بشكل موسع عملية إنشاء شهادة SSL لخادوم Apache على نظام Ubuntu 14.04، مع التركيز على الخطوات التفصيلية، والشرح التقني اللازم، وأفضل الممارسات لتحقيق أقصى درجات الأمان.


مقدمة عن شهادة SSL وأهميتها لخادوم Apache

شهادة SSL هي وثيقة رقمية تثبت هوية الموقع الإلكتروني وتُستخدم لتشفير حركة المرور بين الخادم والمستخدمين. عندما يتم تفعيل SSL على خادوم Apache، يتحول بروتوكول الاتصال من HTTP إلى HTTPS، مما يعزز الثقة بين المستخدم والموقع، ويزيد من حماية البيانات الحساسة مثل كلمات المرور والمعلومات البنكية.

على الرغم من أن Ubuntu 14.04 نسخة قديمة نسبياً، إلا أنه لا يزال الكثيرون يستخدمونها لأسباب مختلفة، سواء لدعم البرمجيات القديمة أو لأغراض التعلم، ولهذا يبقى من الضروري معرفة كيفية إعداد شهادة SSL على هذه النسخة.


المتطلبات الأساسية

قبل البدء في إعداد شهادة SSL على Apache في Ubuntu 14.04، يجب التأكد من توفر المتطلبات التالية:

  • خادوم يعمل بنظام Ubuntu 14.04.

  • صلاحيات المستخدم الجذر (Root) أو صلاحيات sudo.

  • وجود خادوم Apache مُثبت ومُشغّل.

  • أداة OpenSSL لإنشاء الشهادات.

  • وصول إلى الطرفية (Terminal) لتنفيذ الأوامر.


خطوات إعداد شهادة SSL على Apache في Ubuntu 14.04

1. تثبيت حزمة Apache SSL

أول خطوة هي التأكد من أن وحدة SSL مفعلة في Apache، وذلك بتثبيت الحزمة الخاصة بها:

bash
sudo apt-get update sudo apt-get install apache2 apache2-utils ssl-cert

بعد التثبيت، يتم تفعيل وحدة SSL في Apache باستخدام الأمر:

bash
sudo a2enmod ssl

2. إنشاء مجلد لتخزين شهادات SSL

ينصح بوضع ملفات الشهادة والمفتاح في مجلد مخصص داخل المسار /etc/ssl/، مثلاً:

bash
sudo mkdir -p /etc/ssl/private sudo mkdir -p /etc/ssl/certs

3. إنشاء شهادة SSL ذاتية التوقيع (Self-Signed Certificate)

تُستخدم الشهادات ذاتية التوقيع غالباً في بيئات التطوير أو الاختبار، لأنها ليست معتمدة من قبل جهات إصدار شهادات رسمية، لكنها توفر تشفيراً جيداً.

لإنشاء شهادة ذاتية التوقيع، نستخدم أداة OpenSSL:

bash
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

شرح الأمر:

  • req لإنشاء طلب شهادة.

  • -x509 لإنشاء شهادة X.509.

  • -nodes لتجنب تشفير المفتاح الخاص (عدم الحاجة لكلمة مرور عند بدء Apache).

  • -days 365 صلاحية الشهادة لمدة سنة.

  • -newkey rsa:2048 إنشاء مفتاح جديد RSA بحجم 2048 بت.

  • -keyout المسار لحفظ المفتاح الخاص.

  • -out المسار لحفظ الشهادة.

خلال العملية، سيطلب منك ملء بيانات مثل:

  • الدولة (Country Name)

  • المحافظة أو الولاية (State or Province)

  • المدينة (Locality)

  • المؤسسة (Organization)

  • الوحدة التنظيمية (Organizational Unit)

  • اسم النطاق (Common Name) وهو عادةً اسم الموقع أو IP الخادم

  • البريد الإلكتروني


4. إعداد ملف تكوين Apache لدعم SSL

نحتاج الآن لإنشاء ملف إعداد جديد أو تعديل الملف الافتراضي الخاص بتهيئة SSL في Apache.

يمكنك نسخ الملف الافتراضي وتعديله:

bash
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/my-ssl.conf

افتح الملف الجديد للتحرير:

bash
sudo nano /etc/apache2/sites-available/my-ssl.conf

ابحث عن الأقسام التالية وعدّلها كما يلي:

apache
ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  • ServerAdmin: بريد المسؤول.

  • ServerName: اسم النطاق أو عنوان IP الخاص بالخادم.

  • DocumentRoot: مسار ملفات الموقع.

  • SSLCertificateFile و SSLCertificateKeyFile: مسارات ملفات الشهادة والمفتاح.


5. تفعيل موقع SSL الجديد في Apache

بعد الانتهاء من التهيئة، يتم تفعيل الموقع:

bash
sudo a2ensite my-ssl.conf

ولتعطيل الموقع الافتراضي SSL إذا كان مفعلاً:

bash
sudo a2dissite default-ssl.conf

6. إعادة تشغيل خدمة Apache لتطبيق التغييرات

يجب إعادة تشغيل خدمة Apache لكي يتم تحميل إعدادات SSL الجديدة:

bash
sudo service apache2 restart

أو

bash
sudo systemctl restart apache2

7. اختبار الاتصال عبر HTTPS

بعد إعادة التشغيل، يمكن التحقق من أن الموقع يعمل عبر HTTPS بزيارة:

arduino
https://example.com

يرجى ملاحظة أنه عند استخدام شهادة ذاتية التوقيع، سيظهر تحذير في المتصفح بسبب عدم اعتماد الشهادة من جهة موثوقة.


استخدام شهادات SSL من جهات موثوقة (Let’s Encrypt)

للحصول على شهادة SSL مجانية ومعتمدة من جهة موثوقة، يُفضل استخدام Let’s Encrypt بدلاً من الشهادات الذاتية التوقيع. لكن على Ubuntu 14.04، قد يتطلب الأمر تحديث بعض الحزم أو استخدام أدوات معينة مثل Certbot.

خطوات مبسطة للحصول على شهادة من Let’s Encrypt:

  1. تثبيت Certbot:

bash
sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-apache
  1. طلب الشهادة وتفعيلها تلقائياً:

bash
sudo certbot --apache
  1. متابعة التعليمات التي تظهر لتأكيد النطاقات وتكوين SSL.

سيقوم Certbot بضبط إعدادات Apache تلقائياً وتجديد الشهادة بشكل دوري.


إعدادات أمان متقدمة لشهادة SSL على Apache

لتحسين مستوى الأمان عند استخدام SSL على Apache، يمكن تعديل إعدادات التشفير، والحد من البروتوكولات القديمة، وتفعيل ميزات إضافية.

1. تفعيل HTTP Strict Transport Security (HSTS)

يمنع هذا الإعداد المتصفحات من استخدام HTTP غير الآمن لفترة معينة، وذلك بإضافة السطر التالي داخل ملف إعدادات الموقع:

apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

2. تحديد بروتوكولات TLS الآمنة

يفضل تعطيل بروتوكولات SSL القديمة مثل SSLv2 و SSLv3، واستخدام فقط TLS 1.2 فما فوق:

apache
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

3. ضبط قائمة تشفيرات قوية (Cipher Suites)

يُنصح باستخدام تشفيرات قوية فقط:

apache
SSLCipherSuite HIGH:!aNULL:!MD5 SSLHonorCipherOrder on

ملخص جدول الخطوات والملفات المستخدمة

الخطوة الأمر / الملف المستخدم الهدف
تثبيت Apache SSL sudo apt-get install apache2 apache2-utils ssl-cert تثبيت الحزم الضرورية
تفعيل وحدة SSL في Apache sudo a2enmod ssl تفعيل دعم SSL في Apache
إنشاء مجلدات الشهادات sudo mkdir -p /etc/ssl/private و /etc/ssl/certs تنظيم الملفات الخاصة بالشهادة
إنشاء شهادة ذاتية التوقيع openssl req -x509 -nodes -days 365 -newkey rsa:2048 ... توليد شهادة ومفتاح خاص
تكوين Apache ل SSL تحرير /etc/apache2/sites-available/my-ssl.conf إعداد خادم Apache لاستخدام SSL
تفعيل موقع SSL sudo a2ensite my-ssl.conf تفعيل إعدادات SSL الجديدة
إعادة تشغيل Apache sudo service apache2 restart تطبيق التغييرات
الحصول على شهادة Let’s Encrypt sudo certbot --apache شهادة مجانية معتمدة من جهة موثوقة

الخلاصة

إن إعداد شهادة SSL على خادوم Apache ضمن بيئة Ubuntu 14.04 يتطلب معرفة دقيقة بمجموعة من الخطوات التقنية تبدأ من تثبيت الحزم الأساسية، إنشاء شهادة SSL ذاتية التوقيع، تهيئة ملفات الإعداد، مروراً بتفعيل الموقع وإعادة تشغيل الخادم، مع إمكانية استخدام شهادات معتمدة من جهات مثل Let’s Encrypt لتعزيز الأمان والموثوقية. بالإضافة إلى ذلك، تتطلب المحافظة على أمان الموقع تطبيق إعدادات متقدمة مثل تفعيل HSTS وتحديث البروتوكولات والتشفيرات لضمان أعلى مستويات الحماية. هذا التكامل بين إعداد الشهادة والتشفير الصحيح يضمن بيئة أكثر أماناً وخصوصية لمستخدمي الموقع الإلكتروني.


المصادر


بهذا ينتهي المقال التفصيلي والشامل لإنشاء شهادة SSL لخادوم Apache على Ubuntu 14.04، متضمناً شرحاً علمياً عملياً مع التوجيهات والإعدادات التقنية الدقيقة اللازمة لتحقيق بيئة آمنة للمواقع الإلكترونية.